1. Field of the Invention
This invention relates generally to media entertainment systems which use Electronic Program Guides (EPGs), and, more specifically, to a system and method of generating, for a particular time period, a suggested schedule of media presentations.
2. Description of the Related Art
An Electronic Program Guide (EPG) provides a visual display of media programming schedule information. Such media programming includes, but is not limited to, television shows (cable or broadcast), radio shows, and Webcasts (multicasts over the Internet). Typically, the media programming displayed is shown in real-time, i.e. the scheduling information shown is taking place currently or in the near future.
An exemplary EPG Graphical User Interface (GUI) is shown in FIG. 1. A timeline broken down into half-hour blocks is at reference numeral 101, and the programming for five different channels or stations is shown as horizontal strips at reference numerals 111–115. The user may use an input/ouput (I/O) device to select a particular block in order to see more information regarding the event (i.e., a discrete item of media presentation on a channel, such as a TV or radio show) indicated by that block. In FIG. 1, block 120 has been selected, as shown by its darker outline. Because it has been selected, descriptive information concerning the event in block 120 is shown at the top of the GUI at reference numeral 130. Preview display 130 may contain images and video as well as text to describe the event. The GUI in FIG. 1 only shows one segment of the programming schedule: specifically, the events on channels (or stations or websites) 2, 3, 4, 5, and 6 from time 8:00 to 9:30 p.m. In order to see other channels, the user may scroll up or down using the vertical scroll bar 140 and, in order to see different times, the user may scroll forward in time or backward in time using horizontal scroll bar 150.
The EPG GUI has been described independently of any particular medium or output device because the concept of an EPG GUI is likewise independent of any particular medium or display device. However, a block diagram of the relevant functional modules in a conventional media entertainment system that employs an EPG GUI will now be described with reference to FIG. 2. A media source 210 provides content through communication means 215. Examples of a media source include, but are not limited to, a cable TV (CATV) system, a broadcast television system, the Internet, or a storage/playback device (VCR, DVD player, CD-ROM player, a hard drive, a solid-state memory storage unit, etc.). Each media source may have many channels or just one channel. Although communication means 215 is shown as a system bus in FIG. 2, it is merely for ease of presentation and does not represent the actual implementation of communication means 215. The system bus representation may describe one embodiment, where the different units are connected by a local area network (LAN). However, in other embodiments, there might be point-to-point connections between elements (with no shared broadcast medium) or a combination of separate networked and point-to-point connections. For example, a CATV system (Media Source 210) may have a point-to-point connection by coaxial cable with Receiver/Tuner 220 (“point-to-point” from the viewpoint of the individual Receiver/Tuner 220, not the viewpoint of the CATV system), whereas Receiver/Tuner 220, Controller 230, and output means 250 may all be connected by the interior wiring of a TV set. Examples of the one or more connections making up the communication means 215 include, but are not limited to, coaxial cable, terrestrial RF transmission, optical fiber, satellite microwave transmission, telephone network, local area network (LAN), etc. For purposes of this block diagram, media source 210 may comprise multiple media sources and the communication means 215 may comprise multiple communication means.
Receiver/Tuner 220 receives the media content by communication means 215 and transmits one or more channels to output means 250. Examples of a receiver/tuner include, but are not limited to, a stereo AM/FM receiver, a television UHF/VHF broadcast receiver embedded in a television set, a set-top box (STB) attached to a CATV cable line, a web browser, etc. A web browser is appropriate in this context because a web browser “tunes in” a particular URL (Uniform Resource Locator) to receive media content, such as streaming real-time video. Furthermore, a web browser may be implemented in a PC (Personal Computer), a PDA (Personal Digital Assistant), a mobile terminal (e.g. a WAP-enabled cellular telephone), or any device with a network connection and a processor. A channel may be a “web channel” or the output of a television station, a radio station, or a computer server. Examples of output content on a channel include, but are not limited to, shows, movies, real-time audio/video feed, news text, graphics, images, etc. Examples of output means include, but are not limited to, a television monitor, a stereo speaker system, a holographic display, a screen on a PDA or mobile device, etc.
A controller 230 controls receiver/tuner 220 to select channels to be output on output means 250 and may control other components in FIG. 2, depending on the particular system involved. Controller 230 may comprise one or more processors, may be integrated with receiver/tuner 220, and may be able to perform the steps of a program. Such a program may be stored in Storage 280 or embedded in the controller itself (e.g. the controller is an Application Specific Integrated Circuit (ASIC) chip). Storage 280 is in FIG. 2 for ease of description, and does not necessarily represent hardware. Because controller 230 may require different items stored, such as BIOS, programs, and data, Storage 280 is in FIG. 2 to symbolically represent the one or more locations where these items are stored. Storage 280 may be located remotely (e.g., near Media Source 210), locally (near output means 250), or broken up and distributed both locally and remotely. Storage 280 may be solid-state (SDRAM, flash memory, etc.), magnetic (hard drive, tape, etc.), or optic (CD-ROM, DVD, etc.) memory.
A Scheduling Information Source 260 provides scheduling information for the EPG that is generated for output means 250. In practice, the Scheduling Information Source 260 may be integral with the Media Source 210, e.g., scheduling data may be sent along with the channels in the form of an additional channel or as data multiplexed with individual channels. However, the Scheduling Information Source 260 may be a stand-alone server on the Internet or plugged into a CATV system. By contrast, the Scheduling Information Source 260 may also be multiple distributed information sources or downloaded locally from a portable storage means, such as a floppy disk. The scheduling information that is sent from the Scheduling Information Source 260 may be formatted for output on the output means 250, or may be unformatted, in which case the controller 230 would oversee the formatting of the scheduling information. Furthermore, the scheduling information may be continually broadcast or downloaded using a request/reply protocol, where the controller would request particular scheduling information as the occasion arose and the Scheduling Information Source 260 would reply with that particular scheduling information. Such a protocol might be used if the Scheduling Information Source 260 is implemented as multiple distributed information sources.
User Profile(s) Storage 270 stores records for one or more users who use output means 250. Each user profile record contains preference information regarding one or more users. Examples of preference information include, but are not limited to, preferred genre (e.g., horror, romance, westerns, etc.), preferred actor(s), preferred sports teams(s), scheduling information not to be shown (e.g., a parent might restrict a child's EPG not to show the schedules of R-rated material), preferred shows, relative standings of preferred shows, and preferred keywords (e.g., for words that show up in the descriptive information). These preferences may be entered manually by the one or more users or compiled over time by monitoring the one or more users. The User Profile(s) Storage 270 may be stored locally or remotely.
The functional module description of FIG. 2 effectively encompasses the wide variety of media presentation implementations to which the present invention is directed. As an example, the functional module description can equally be applied to an embodiment comprised of a television set connected to a CATV system, an embodiment comprised of a digital radio receiver attached to a satellite dish, and an embodiment comprised of a PC connected to the Internet, as well as a variety of other embodiments.
One improvement to this type of media system is the addition of Recommendation System 290, which suggest different channel events to the user. Recommendation System 290 may base its recommendations on generic recommendations (for any audience), such as the “Best Bets” of a newspaper, or on specific recommendations for a group or individual. Recommendation System 290 may be implemented locally, e.g., as a program run through Controller 230, or remotely, e.g. as a function performed at Media Source 210. Specific recommendations made to groups or individuals by Recommendation System 290 may be based on individual or group user preferences (either determined by preference monitoring or by direct preference input of the user or group). Exemplary recommendation values for different events on different channels are shown in Table 1. As an example, the event E3 on channel 32, which is scheduled for transmission from 9:00 to 9:30, has a recommendation value of 60 out of 100. The event in the 7:30–8:00 time slot that would be recommended to a user is event E1 on channel 44 because it has the highest recommendation value (69).
TABLE 1Recommendation ValuesChannelEventScheduled TimeRecommendation Value32E17:30–8:0025E28:00–9:0050E39:00–9:3060E4 9:30–10:0027E510:00–11:007144E17:30–8:0069E28:00–9:0050E3 9:00–11:305978E17:30–8:0010E28:00–9:0040E39:00–9:3083E4 9:30–10:0050E510:00–11:0066
One recommendation system is described in a patent application entitled THREE-WAY MEDIA RECOMMENDATION METHOD AND SYSTEM (U.S. application Ser. No. 09/627,139), which is hereby incorporated by reference. In that system, a preference engine and processing system is used to combine three different profiles in order to generate recommendation values for each event. The three different profiles are an explicit rule profile, a feedback profile (preferences indicated by user), and a history profile (preferences indicated by past viewing history). The explicit profile can make stand-alone recommendations or be used to modify recommendations generated from the other profiles. Suitable mathematical forms are used to appropriately weigh different factors and/or profile recommendations.
The output of conventional recommendation systems is a one-dimensional value that does not change over time. In other words, the recommendation value of an event does not change before, during, or after the broadcast of the event. This is shown graphically in FIGS. 3A–3C where the recommendation values REx for the events Ex in Table 1 are charted over time. In order to add more functionality to recommendation systems, as disclosed in the patent application entitled RECOMMENDER SYSTEM USING “FUZZY-NOW” FOR REAL-TIME EVENTS (U.S. application Ser. No. 09/730,676), which is hereby incorporated by reference, a Fuzzy-Now Function Module 295 is added.
The fuzzy-now function yields a weighting factor to be applied to current viewing recommendations. Because the function is based on time, the fuzzy-now function typically varies over time and that variation is typically related to the starting and ending times for an event. An exemplary and simple fuzzy-now function for an event is shown in FIG. 4. In FIG. 4, there is an event occurring over time period (tend–tstart) with a starting time of tstart and an ending time of tend. There is also a waiting starting time of twait—start, which is determined by subtracting threshold time tthreshold from the tstart of the event. The fuzzy-now function in FIG. 4 produces a weighting factor w for the event over time, with, for example, 1 being the most preferred and 0 being not preferred at all. In one aspect, the fuzzy-now function might be considered to represent the answer to the question: “how enjoyable is this program if I start watching it (or start waiting for it) now?”. The assumption behind the fuzzy-now function of FIG. 4 is that the user prefers to see the start of an event and his or her interest wanes from that point onward, as indicated by slope 403. Slope 402 indicates the user's willingness to wait before the event begins. If it is before the waiting start time twait—start, the user is not willing to wait at all. After waiting start time twait—start, the user is increasingly willing to wait as the amount of remaining waiting time decreases. Another simple fuzzy-now function might have a plateau in slope 403 to indicate a continued and constant enjoyment level.
This is a simple fuzzy-now function because it merely has straight line slopes connecting key times of the event (the key times being f(tstart)=1, f(tend)=0, and f(twait—start)=0). There may be far more complex fuzzy-now functions based on different assumptions. For example, the user may enjoy the final Jeopardy round of the Jeopardy television show more than the other Jeopardy rounds. Because the final Jeopardy round occurs roughly five minutes before the end, the peak of the fuzzy-now function for Jeopardy may occur there, rather than tstart. In the same vein, the user may be more interested in watching the end of sports events or the final climax of a movie rather than the beginning.
FIGS. 5A–5C show more complex fuzzy-now weighted functions w=fw(Ex) for the same events Ex on the same channels and the same particular time period as FIGS. 3A–3C. It is unlikely that there would be as wide a disparity between fuzzy-now functions as is shown between the individual fuzzy-now functions in FIGS. 5A–5C; however, the variety of shapes makes it easier to understand the process. Furthermore, for convenience, the weighted functions in FIGS. 5A–5C only apply to the time period between the start time and the end time of the event, and not the waiting time before the event starts (tstart−tthreshold=twait—start in FIG. 4).
As an example of a more complex fuzzy-now function, event E1 on channel 32 between 7:30 and 8:00 in FIG. 5A has a fuzzy-now weighted function fw(E1) which shows increasing interest for the first 15 minutes of the event (510), and then a sustained plateau of interest during the last 15 minutes of the event (520). As another example, in FIG. 5B, event E2 on channel 44 between 8:00 and 9:00 has a fuzzy-now weighted function fw(E2) with a slowly decreasing interest curve 540. Because it is used to weight the recommendation values, the fuzzy-now function w=fw(Ex) varies between 0 and 1 (as shown by the y-axis in FIGS. 5A–5C) so that events will only have their total recommendation value when the fuzzy-now function is highest (w=1) and will have no recommendation value when the fuzzy-now function is lowest (w=0).
Lastly, FIGS. 6A–6C show the final recommendation functions fR(Ex)=fw(Ex)※REx for each event on each channel of Table 1 and FIGS. 3 and 5. The recommendation function fR(Ex) (FIG. 6) of an event Ex is calculated by applying (i.e., multiplying) the weighted fuzzy-now function fw(Ex) (FIG. 5) for that event Ex to the recommendation value REx (FIG. 3) of that event Ex. For example, in FIG. 6A, the recommendation function fR(E1) 625 of event E1 on channel between 7:30 and 8:00 equals the recommendation value RE1=25 (301 in FIG. 3A) multiplied by the fuzzy-now function fw(E1) (501 in FIG. 5A). Thus, although the last fifteen minutes of event E1 on channel 32 show the greatest amount of interest (520 in FIG. 5A), the recommendation value for E1 is only 25 (301 in FIG. 3A), so those fifteen minutes have a final recommendation function value of 25 (625 in FIG. 6A).
As discussed above, these values and functions fR(Ex), fw(Ex), and REx may be reached in a myriad of ways: monitoring the user, receiving best bets from a media source, tracking interest over time, etc. In the discussion of the present invention below, the exact manner of generating the specific values and functions is not limited or defined in any way so that the present invention applies to any system or method of generating the specific values and functions fR(Ex), fw(Ex), and REx.
The fuzzy-now recommender system, as disclosed in RECOMMENDER SYSTEM USING “FUZZY-NOW” FOR REAL-TIME EVENTS (U.S. application Ser. No. 09/730,676), relates the instantaneous recommendation values for all roughly contemporaneous events to the current time in order to determine the user's immediate preferences. In other words, although a time-varying function is used to calculate the recommendation values, only one-dimensional instantaneous values are used to make recommendations. A simple example of this is shown in FIG. 7. FIG. 7 shows the recommendation functions fR(Ex) of the events on five particular channels (6, 12, 17, 25, and 30) as they change over time. For convenience, it is assumed certain time periods on certain channels have no events. For instance, there are no events from 8:30 to 9:30 on channel 6, 9:00 to 10:00 on channel 12, 9:30 to 10:00 on channels 17 and 25, and 8:30 to 9:00 on channel 30. In reality, there would be events during these time periods, and the recommendation values of those events would overlap with the recommendation values of the succeeding or preceding event on the same channel, which would lead to a confusing graph.
A user, at time 8:53 p.m., indicated by line 710 in FIG. 7, asks the fuzzy-now recommendation system to supply him with recommendations. At the time of the request 710, the recommendation values for the event on channel 12 is 0.225; the event on channel 17 is 0.375; the event on channel 25, 0.38; and the event on channel 30, 0.05. The fizzy-now recommendation system would recommend the event on channel 25 because it has the highest current recommendation value (0.38).
However, this recommendation is best seen as a local recommendation, but not necessarily a global recommendation. In other words, although the event on channel 25 is the best recommendation at the instantaneous point 710 in time, this may change over time. In fact, in FIG. 7, the event on channel 25 maintains roughly the same recommendation value and then decreases over the next 47 minutes, whereas the event on channel 17 rapidly increases its recommendation value far above the event on channel 25 and remains higher for the remainder of the next 47 minutes. A global recommendation may be for the event on channel 17 rather than channel 25, regardless of the exact instantaneous recommendation value.
Therefore, there is a need for a system and method which can use the fuzzy-now recommendation functions to generate global recommendations. Such a fuzzy-now recommendation system would take into account future events, and how the recommendation values of events change subsequent to the current time. Because such a fuzzy-now recommendation would provide global recommendations, it would be uniquely suited for generating recommended schedules for users.